<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
define('LARAVEL_APP_DIR', __DIR__.'/../../');
define('LARAVEL_STORAGE', __DIR__.'/../../storage/');

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
//        $schedule->command('test')//Test.php中的name
//                 ->everyMinute();//每分钟执行一次
//        $schedule->call(function(){
//            $dir = __DIR__.'/../../storage/';
//            file_put_contents($dir.date('ymd').'.txt',date('Y-m-d H:i:s').'_测试调度1',FILE_APPEND);
//        })->everyMinute();
        // $schedule->command('inspire')
        //          ->hourly();

        /*30分钟未支付的年检预约单自动取消*/
        $schedule->command('ao_auto_cancel')//AppointOrderAutoCancel.php中的name
                 ->everyMinute();//每分钟执行一次

        /*评价所有7天未评价检测机构年检预约订单-不给评分只标记订单为已评价状态*/
        $schedule->command('ao_auto_apprise')
                 ->hourly();//每小时执行一次

        /*分钟未支付的维修店服务订单自动取消*/
        $schedule->command('rso_auto_cancel')
                 ->everyMinute();//每分钟执行一次

        /*7天内没有处理的服务订单*/
        $schedule->command('rso_auto_apprise')
                 ->hourly();//每小时执行一次

        /*分钟未支付的积分商城订单自自动取消*/
        $schedule->command('mall_auto_cancel')
            ->everyMinute();//每分钟执行一次

        /*分钟未支付的商城订单自自动取消*/
        $schedule->command('store_auto_cancel')
            ->everyMinute();//每分钟执行一次

        /*分钟已过期的活动将商品重置为普通商品*/
        $schedule->command('actives_auto_cancel')
            ->everyMinute();//每分钟执行一次

        /*分钟已过期的道路救援订单设置为过期订单*/
        $schedule->command('road_rescue_auto_cancel')
            ->everyMinute();//每分钟执行一次



        /*发货后十五天后确认收货*/
        $schedule->command('confirm_store_order')
            ->daily();//每天凌晨零点运行任务

        /*收货十五天后关闭订单不可进行任何操作*/
        $schedule->command('close_store_order')
            ->daily();//每天凌晨零点运行任务

        /*维修保养商户端确认完成后三天后，更新订单为用户确认已完成*/
        $schedule->command('confirm_order_repair')
            ->daily();//每天凌晨零点运行任务


        /****************上线时删除***********************/
        /*发货后十五天后确认收货*/
       // $schedule->command('confirm_store_order')->everyMinute();//十分钟测试
        /*收货十五天后关闭订单不可进行任何操作*/
        //$schedule->command('close_store_order')->everyMinute();//十分钟测试
        /*维修保养商户端确认完成后三天后，更新订单为用户确认已完成*/
        //$schedule->command('confirm_order_repair')->everyMinute();//十分钟测试
        /****************上线时删除***********************/


        /*分钟订单发送活动的推送信息*/
        $schedule->command('jpush_auto_cancel')
            ->everyMinute();
        /*分钟订单发送活动的推送信息*/
        $schedule->command('coupons_auto_cancel')
            ->everyMinute();

//        $schedule->command('test')
//                 ->everyMinute();

        $schedule->command('upkeng_jpush_auto_cancel')   //保养推送
        ->everyMinute();


        /* 活动开始将关联的商品设置为活动商品*/
        $schedule->command('activity_start_auto_cancel')   //活动开始时
            ->daily();//每天凌晨零点运行任务

        /*队列任务集合*/
        $this->queue_work_list($schedule);

    }

    public function queue_work_list($schedule){
        //返还年检预约数量
        $schedule->command('queue_return_njyy_appoint_num')->everyMinute();//每分钟执行一次

        $schedule->command('task_daily_nine')->everyMinute();//每天9点执行任务 todo
        //        $schedule->command('task_every_minute')->everyMinute();//每分钟执行一次
        $schedule->command('queue_task_every_minute')->everyMinute();//每分钟执行一次

    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }


}
